#pragma once

#include "../QRSWidgetBase.h"
#include "ui_QMoveFaceOperation.h"

#include "Render/QIVtkSelectionPipeline.h"

class MainWindow;
class ShapeOperation;

QT_BEGIN_NAMESPACE
namespace Ui { class QMoveFaceOperationClass; };
QT_END_NAMESPACE

class QMoveFaceOperation : public QRSWidgetBase
{
	Q_OBJECT

public:
	QMoveFaceOperation(MainWindow* inMainWindow, ShapeOperation* inOperation = nullptr, QWidget* parent = nullptr);
	~QMoveFaceOperation();

protected:
	void OnSelectedSubShapes(QIVtkSelectionPipeline* actor);
	virtual void closeEvent(QCloseEvent* event) override;
	void OnTargetComboIndexChange(int index);

	void OnModify();
	void OnConfirm();

	void MoveFaceInner();

private:
	Ui::QMoveFaceOperationClass *ui;

	QIVtkSelectionPipeline* m_selectedActor = nullptr;
	RWTripleFloatInput* m_dir;
};
